package pers.xds.wtuapp.web.database.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import pers.xds.wtuapp.web.database.bean.Acquisition;
import pers.xds.wtuapp.web.database.view.AcquisitionQuery;

import java.util.List;

/**
 * @author DeSen Xu
 * @date 2023-02-16 16:48
 */
@Mapper
public interface AcquisitionMapper {

    /**
     * 插入一条收购订单
     * @param acquisition 收购信息
     */
    void insert(@Param("ac") Acquisition acquisition);


    /**
     * 将收购标记为失效
     * @param id 收购id
     * @param ownerId 持有者id
     * @return 返回1表示成功, 0表示收购不存在
     */
    int takeDownAcquisition(@Param("id") int id, @Param("ownerId") int ownerId);


    /**
     * 查询最新的收购订单
     * @param maxId 返回的结果中，订单id最大值为maxId - 1. 或者传入null直接取最新订单
     * @param size 查询大小
     * @return 查询结果
     */
    List<AcquisitionQuery> queryAcquisition(@Param("mxId") Integer maxId, @Param("sz") int size);


    /**
     * 根据id查询收购订单
     * @param acquisitionId 收购id
     * @return 查询结果
     */
    Acquisition selectById(@Param("aid") int acquisitionId);

    /**
     * 根据激活状态查询. 只会返回id,title,create_time,expect_price四个字段
     * @param ownerId 订单拥有者id
     * @param isActive 是否激活，1为激活，0位下架
     * @param page 分页
     * @return 查询结果
     */
    IPage<Acquisition> selectByActive(@Param("uid") int ownerId, @Param("active") int isActive, IPage<Acquisition> page);

}
